package com.yuyue.springFramework.note07.entity;

import org.springframework.context.annotation.Conditional;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 定义环境注解
 */
//使用条件注解，以自定义的条件是环境类型的Condition 实现类作为条件
@Conditional(EnvCondition.class)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface EnvConditional {
    //定义环境枚举值（测试环境、开发环境、生产环境）
    enum ENV{
        TEST, DEV, PROD
    }

    //环境
    ENV value() default ENV.TEST;
}
